package com.enjoyor.soa.traffic.api.ubms.service.dubbo;

import com.enjoyor.soa.traffic.api.ubms.dto.SignalZoneInfoDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

/**
 * 维护信号机区域参数的Dubbo服务
 * @author yuankun
 * @version V1.0
 */
@SuppressWarnings("rawtypes")
public interface DubboSignalZoneInfoService {
	/**
	 * 返回所有信号机区域参数
	 * @return ResultPojo 所有信号机区域参数
	 */
	public ResultPojo getSignalZoneInfo();
	
	/**
	 * 分页返回所有信号机区域参数
	 * @param page 分页对象
	 * @return ResultPojo 包含信号机区域参数的分页对象
	 */
	public ResultPojo getPageSignalZoneInfo(Page page);
	/**
	 * 返回所有信号机区域参数
	 * @param orderSeq 
	 * @param zoneName 
	 * @param zoneId 
	 * @return ResultPojo 所有信号机区域参数
	 */
	public ResultPojo getSignalZoneInfo(String zoneId, String zoneName, String orderSeq);
	
	/**
	 * 分页返回所有信号机区域参数
	 * @param page 分页对象
	 * @param orderSeq 
	 * @param zoneName 
	 * @param zoneId 
	 * @return ResultPojo 包含信号机区域参数的分页对象
	 */
	public ResultPojo getPageSignalZoneInfo(Page page, String zoneId, String zoneName, String orderSeq);
	
	/**
	 * 返回指定区域编码的区域参数
	 * @param zoneId 区域编码
	 * @return ResultPojo 信号机区域参数
	 */
	public ResultPojo getSignalZoneInfoById(String zoneId);
	
	/**
	 * 返回信号机最大区域编码值，用于手工生成新的编码
	 * @return String 信号机最大区域编码值
	 */
	public String getMaxZoneId();
	
	/**
	 * 按名称匹配并返回信号机区域参数
	 * @param zoneName 区域名称
	 * @return ResultPojo 信号机区域参数
	 */
	public ResultPojo getSignalZoneInfoByName(String zoneName);
	
	/**
	 * 添加一条信号机区域参数
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalZoneInfoDto 信号机区域参数
	 * @return ResultPojo 添加结果
	 */
	public ResultPojo addSignalZoneInfo(String token, SignalZoneInfoDto signalZoneInfoDto);
	
	/**
	 * 修改一条信号机区域参数
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param signalZoneInfoDto 信号机区域参数
	 * @return ResultPojo 修改结果
	 */
	public ResultPojo editSignalZoneInfo(String token, SignalZoneInfoDto signalZoneInfoDto);
	
	/**
	 * 删除指定编码的信号机区域参数
	 * @param token 以逗号分隔的输入信息，如用户名等
	 * @param zoneId 区域编码
	 * @return ResultPojo 删除结果
	 */
	public ResultPojo removeSignalZoneInfo(String token, String zoneId);
	
	/**
	 * 分页返回所有信号机区域参数
	 * @param page 分页对象
	 * @param orderSeq 
	 * @param zoneName 
	 * @param zoneId 
	 * @return ResultPojo 包含信号机区域参数的分页对象
	 */
	public ResultPojo getPageEasyUiSignalZoneInfo(Page page, String zoneId, String zoneName, String orderSeq);
}
